home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / flight-of-the-museum.swf / scripts / com / google / analytics / utils / Version.as < prev   
Encoding:
Text File  |  2011-10-17  |  4.5 KB  |  182 lines

  1. package com.google.analytics.utils
  2. {
  3.    public class Version
  4.    {
  5.        
  6.       
  7.       private var _revision:uint;
  8.       
  9.       private var _maxBuild:uint = 255;
  10.       
  11.       private var _maxMinor:uint = 15;
  12.       
  13.       private var _maxMajor:uint = 15;
  14.       
  15.       private var _separator:String = ".";
  16.       
  17.       private var _maxRevision:uint = 65535;
  18.       
  19.       private var _build:uint;
  20.       
  21.       private var _major:uint;
  22.       
  23.       private var _minor:uint;
  24.       
  25.       public function Version(major:uint = 0, minor:uint = 0, build:uint = 0, revision:uint = 0)
  26.       {
  27.          var v:Version = null;
  28.          super();
  29.          if(major > _maxMajor && minor == 0 && build == 0 && revision == 0)
  30.          {
  31.             v = Version.fromNumber(major);
  32.             major = v.major;
  33.             minor = v.minor;
  34.             build = v.build;
  35.             revision = v.revision;
  36.          }
  37.          this.major = major;
  38.          this.minor = minor;
  39.          this.build = build;
  40.          this.revision = revision;
  41.       }
  42.       
  43.       public static function fromString(value:String = "", separator:String = ".") : Version
  44.       {
  45.          var values:Array = null;
  46.          var v:Version = new Version();
  47.          if(value == "" || value == null)
  48.          {
  49.             return v;
  50.          }
  51.          if(value.indexOf(separator) > -1)
  52.          {
  53.             values = value.split(separator);
  54.             v.major = parseInt(values[0]);
  55.             v.minor = parseInt(values[1]);
  56.             v.build = parseInt(values[2]);
  57.             v.revision = parseInt(values[3]);
  58.          }
  59.          else
  60.          {
  61.             v.major = parseInt(value);
  62.          }
  63.          return v;
  64.       }
  65.       
  66.       public static function fromNumber(value:Number = 0) : Version
  67.       {
  68.          var v:Version = new Version();
  69.          if(isNaN(value) || value == 0 || value < 0 || value == Number.MAX_VALUE || value == Number.POSITIVE_INFINITY || value == Number.NEGATIVE_INFINITY)
  70.          {
  71.             return v;
  72.          }
  73.          v.major = value >>> 28;
  74.          v.minor = (value & 251658240) >>> 24;
  75.          v.build = (value & 16711680) >>> 16;
  76.          v.revision = value & 65535;
  77.          return v;
  78.       }
  79.       
  80.       public function toString(fields:int = 0) : String
  81.       {
  82.          var arr:Array = null;
  83.          if(fields <= 0 || fields > 4)
  84.          {
  85.             fields = getFields();
  86.          }
  87.          switch(fields)
  88.          {
  89.             case 1:
  90.                arr = [major];
  91.                break;
  92.             case 2:
  93.                arr = [major,minor];
  94.                break;
  95.             case 3:
  96.                arr = [major,minor,build];
  97.                break;
  98.             case 4:
  99.             default:
  100.                arr = [major,minor,build,revision];
  101.          }
  102.          return arr.join(_separator);
  103.       }
  104.       
  105.       public function set revision(value:uint) : void
  106.       {
  107.          _revision = Math.min(value,_maxRevision);
  108.       }
  109.       
  110.       public function get revision() : uint
  111.       {
  112.          return _revision;
  113.       }
  114.       
  115.       public function set build(value:uint) : void
  116.       {
  117.          _build = Math.min(value,_maxBuild);
  118.       }
  119.       
  120.       public function set minor(value:uint) : void
  121.       {
  122.          _minor = Math.min(value,_maxMinor);
  123.       }
  124.       
  125.       public function get build() : uint
  126.       {
  127.          return _build;
  128.       }
  129.       
  130.       public function set major(value:uint) : void
  131.       {
  132.          _major = Math.min(value,_maxMajor);
  133.       }
  134.       
  135.       public function get minor() : uint
  136.       {
  137.          return _minor;
  138.       }
  139.       
  140.       private function getFields() : int
  141.       {
  142.          var f:int = 4;
  143.          if(revision == 0)
  144.          {
  145.             f--;
  146.          }
  147.          if(f == 3 && build == 0)
  148.          {
  149.             f--;
  150.          }
  151.          if(f == 2 && minor == 0)
  152.          {
  153.             f--;
  154.          }
  155.          return f;
  156.       }
  157.       
  158.       public function valueOf() : uint
  159.       {
  160.          return major << 28 | minor << 24 | build << 16 | revision;
  161.       }
  162.       
  163.       public function get major() : uint
  164.       {
  165.          return _major;
  166.       }
  167.       
  168.       public function equals(o:*) : Boolean
  169.       {
  170.          if(!(o is Version))
  171.          {
  172.             return false;
  173.          }
  174.          if(o.major == major && o.minor == minor && o.build == build && o.revision == revision)
  175.          {
  176.             return true;
  177.          }
  178.          return false;
  179.       }
  180.    }
  181. }
  182.